package com.only4play.practice.template.core.entity;

import com.only4play.codegen.processor.api.*;
import com.only4play.codegen.processor.controller.GenController;
import com.only4play.codegen.processor.creator.GenCreator;
import com.only4play.codegen.processor.dto.GenDto;
import com.only4play.codegen.processor.entitymapper.GenObjectMapper;
import com.only4play.codegen.processor.mapper.GenMapper;
import com.only4play.codegen.processor.query.GenQuery;
import com.only4play.codegen.processor.service.GenService;
import com.only4play.codegen.processor.service.GenServiceImpl;
import com.only4play.codegen.processor.updater.GenUpdater;
import com.only4play.codegen.processor.vo.GenVo;
import com.only4play.codegen.support.annotation.FieldDesc;
import com.only4play.codegen.support.constants.ValidStatus;
import com.only4play.codegen.support.model.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@GenCreator(pkgName = "com.only4play.practice.template.model.creator")
@GenUpdater(pkgName = "com.only4play.practice.template.model.updater")
// findById方法
@GenVo(pkgName = "com.only4play.practice.template.model.vo")
// findByPage方法
@GenQuery(pkgName = "com.only4play.practice.template.model.query")
@GenCreateRequest(pkgName = "com.only4play.practice.template.model.request")
@GenUpdateRequest(pkgName = "com.only4play.practice.template.model.request")
@GenQueryRequest(pkgName = "com.only4play.practice.template.model.request")
@GenResponse(pkgName = "com.only4play.practice.template.model.response")
@GenDto(pkgName = "com.only4play.practice.template.model.dto")

@GenFeign(pkgName = "com.only4play.practice.template.model.feign")


// 生成serviceImpl
@GenObjectMapper(pkgName = "com.only4play.practice.template.entitymapper")
// 生成serviceImpl
@GenMapper(pkgName = "com.only4play.practice.template.core.mapper")
@GenService(pkgName = "com.only4play.practice.template.core.service")
@GenServiceImpl(pkgName = "com.only4play.practice.template.core.service.impl")

@GenController(pkgName = "com.only4play.practice.template.core.controller")
@EqualsAndHashCode(callSuper = true)
@Data
public class TemplateCategory extends BaseEntity {

  @FieldDesc(name = "分类名称")
  private String name;

  /**
   * 分类编码约定规律，这时业务系统好使用
   */
  @FieldDesc(name = "分类编码")
  private String code;


  @FieldDesc(name = "状态")
  private ValidStatus validStatus;
  public void init() {
    setValidStatus(ValidStatus.VALID);
  }

  public void valid(){
    setValidStatus(ValidStatus.VALID);
  }

  public void invalid(){
    setValidStatus(ValidStatus.INVALID);
  }


}
